#ifndef	_VITERBI_H_
#define	_VITERBI_H_


#define	HNUM	(3)
enum HIDDEN{SUNNY = 0, CLOUDY, RAINY};
#define	ONUM	(4)
enum OBSERVED{DRY = 0, DRYISH, DAMP, SOGGY};

//INIT[state]       sunny  cloudy rainy
double INIT[HNUM] = {0.630, 0.170, 0.200};

//TRANS[yes][today] : yestoday state -> today state 
double TRANS[HNUM][HNUM] = {
/*yes\today	sunny   cloudy rainy */
/*sunny*/	{0.500, 0.375, 0.125},
/*cloudy*/	{0.250, 0.125, 0.625},
/*rainy*/	{0.250, 0.375, 0.375},
};

//CONF[hidden][observed] : hidden state -> observed state
double CONF[HNUM][ONUM] = {
/*hid\obs	dry     dryish damp   soggy */
/*sunny*/	{0.600, 0.200, 0.150, 0.050},
/*cloudy*/	{0.250, 0.250, 0.250, 0.250},
/*rainy*/	{0.050, 0.100, 0.350, 0.500},
};

#endif
